Robotic arms are widely used in some industries for assembly work, welding, painting and the like. In a typical operation, a single robot arm carries a tool such as a paint sprayer or welding head to various portions of a workpiece under the control of a microprocessor. For some operations, such as for example a spray-painting operation, it is sufficient for the controller to command the robot arm to traverse a predetermined trajectory in space which is known to be at a selected distance from the surface of the workpiece being painted. In such a situation, the, robot arm only needs to carry the spray head, and does not need to come into contact with the workpiece.
A robot arm for welding, on the other hand, not only carries the welding head, but must move the welding head into contact with the workpiece, and further, must often press the welding head against the workpiece with a predetermined force. For such an operation, it is desirable to use not only position control, but also force control. Combined position/force control is described, for example, in "Experiments In Force Control Of Robotic Manipulators" by Maples et al., published at pages 695-702 of the Proceedings of the 1986 IEEE International Conference on Robotics and Automation, and in a chapter entitled "Hybrid Positions/Force Control of Manipulators" by Raibert et al., which appeared at pages 419-438 of the text "Robot Motion: Planning and Control" edited by Brady et al., and published by MIT press, 1982. The systems described in the above articles use force sensors to determine the forces being applied by the arms, and the Maples et al. article describes conversion of the forces to position accommodation signals which modify the basic position control to maintain the desired force.
When robots are used for moving objects from one location to another location, it is found that certain objects are not readily adaptable to being manipulated by a single robot arm or manipulator. For example, the insertion of the end of a long, relatively massive steel pipe into a fixed hole or receptacle is very difficult with a single arm. If the arm grasps the object away from the center of gravity, its mass causes large torques to be generated which tend to mask the force sensor signals resulting from insertion forces, thereby making force control difficult to implement. Also, the free end of the object tends to whip or oscillate, which makes insertion of the free end into a receptacle very difficult. A more natural way of picking up and manipulating long objects is to pick them up at or near each end with a coordinated pair of robotic arms. This reduces the torques necessary at a particular arm, and allows the application of a moment to the object by the application of force alone at each of two locations. The use of multiple robotic arms for coordinated movement is, however, subject to a certain amount of inaccuracy due to errors in the control models which describe the interaction of the robot arms with the surrounding space and the object being manipulated.
The nature of these errors can be readily understood by considering a simple example. In the example, a rectangular block is held between the ends of two robot arms, which press against the opposed ends of the block with a certain amount of force as a result of the positions of the robot arms having been selected with an inter-arm spacing slightly less than the dimensions of the block. Consequently, the block is slightly compressed. Each of the two arms is controlled independently, but the control signals are coordinated and synchronized for a desired motion which lifts the block from a table and transports it to a remote location. Thus, the block is held by the pressure of the two arms on its sides. If simple position control of each arm is used, the block will continue to be held so long as the inter-arm separation does not deviate significantly from that originally established. However, if the inter-arm separation should, due to the inaccuracies in the coordinated motion of the arms, exceed the dimension between the end faces of the block, even for a moment, the block will fall. Thus, position control of the arms for the described use requires tracking, which is never exact. On the other hand, if the separation between the arms decreases between that originally established, the forces exerted on the block will increase, and if the increase in force is substantial this may result in breakage of the object or of one of the robot arms.
An obvious way to control two arms for coordinated control would be to use two independent but coordinated hybrid position/force controllers, each similar to one of the Maples et al. or Rarbeit et al. controllers. This has the advantage of simplicity. However, even though the arms act independently, they are coupled together by the forces acting through the object being manipulated, since both arms are holding the same object. This adversely affects the dynamic response of both controls, because the sensing of a force results in two independent actions to relieve the force. This tends to cause at least an overreaction to the applied force and may cause oscillation. This can be prevented by increasing the damping, but the damping tends to make the system slow to respond.
These highly simplified examples merely give a flavor for the kinds of problems which can arise in the control of coordinated arms. Actual robotic arms ordinarily include grippers for gripping the device, and further include one or more wrist joints, which complicate the control, and which furthermore allow the application of various types of bending or tension to the object, in addition to compression. An example of a more sophisticated type of action might be the problem of "placing the peg in the hole", which is the grasping of an elongated rod near its ends by a pair of arms terminated in gripping devices, and the coordinated motion of the arms for transporting the rod and for insertion of the end of the rod into a matching hole. FIG. 1a illustrates an elongated rectangular bar 10 which is gripped by grippers (not illustrated) at locations 12 and 14 in such a manner that both torques and forces may be applied. After translation with the above-described inaccuracies, the bar may take the form illustrated in FIG. 1b, which includes the results of both torques and forces. In FIG. 2, an originally straight bar 10 is seen in elevation view. In FIG. 2, the bar is illustrated as being gripped by first and second gripper sets 14 and 16. In the illustrated position, grippers 14 and 16 have a vertical offset therebetween which results from inaccuracies in the control. As can be seen, bar 10 is substantially distorted even by this simple error. In an actual operating system, such errors, if accumulated, could result in streses which might damage or break the workpiece or the robot.
A controller is desired for controlling multiple arms in a coordinated fashion.